from fastapi import FastAPI, Path
import uvicorn

# 创建一个FastAPI实例
app = FastAPI()

# 路径参数在请求参数中使用{}标识，在处理函数中设置同名的参数即可
@app.get("/items/{item_id}")
async def read_iem(item_id: int):
    return {"item_id": item_id}

@app.get("/users/{user_no}")
async def read_user(user_no: str = Path(
    ...,                # ...表示一个占位符，必须参数没有默认值，必须由用户输入
    title="用户编号",           # 标题
    description="用户编号",     # 描述
    min_length=1,              # 最小长度
    max_length=10,             # 最大长度
    pattern="^[a-zA-Z0-9_-]{1,10}$",    # 正则表达式
    examples=["user_123"]               # 示例
)):
    return {"user_id": user_no}


if __name__ == "__main__":
    uvicorn.run(app, host="127.0.0.1", port=8000)


